package com.gscitysfy.cus.drain.modules.inspection.entity;

import com.alibaba.fastjson.annotation.JSONField;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Getter;
import lombok.Setter;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.util.Date;

/**
 * @author Administrator
 * @since 2022-10-14 16:15:41
 */
@Getter
@Setter
@TableName("drain_inspection_mn_order")
public class DrainInspectionMnOrder implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 主键id
     */
    @TableId
    private Long cmKid;

    /**
     * 处置单编号
     */
    private String cmOrderNo;

    /**
     * 关联问题id
     */
    private Long cmProblemId;

    /**
     * 关联计划id
     */
    private Long cmPlanId;

    /**
     * 是否是维养任务  （0表示否 根据问题创建的 1表示是 根据计划创建的）
     */
    private String isOrder;

    /**
     * 任务来源（0养护任务-计划生成的  1pc端问题,巡查上报问题生成的  2小程序直接问题上报的）
     */
    private String sourceType;

    /**
     * 维修负责人id
     */
    private Long cmOrderHeaderId;

    /**
     * 维修负责人名称
     */
    private String cmOrderHeaderName;

    /**
     * 维修负责人电话
     */
    private String cmOrderHeaderPhone;

    /**
     * 维修人名称，多个用空格隔开
     */
    private String cmOrderExecutorName;

    /**
     * 执行人id
     */
    private Long cmOrderExecutorId;

    /**
     * 维修计划开始时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    private Date cmOrderStartTime;

    /**
     * 维修计划结束时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    private Date cmOrderEndTime;

    /**
     * 实际开始时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    private Date cmOrderActualStartTime;

    /**
     * 实际结束时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    private Date cmOrderActualEndTime;

    /**
     * 维修建议
     */
    private String cmOrderSuggestion;

    /**
     * 污泥量
     */
    private Double sludgeQuantity;

    /**
     * 维修单状态
     */
    private Long cmOrderStatus;

    /**
     * 维修单状态desc
     */
    @TableField(exist = false)
    private String cmOrderStatusDesc;

    /**
     * 维修结果
     */
    private String cmOrderResult;

    /**
     * 维修情况描述
     */
    private String cmOrderRepairDesc;

    /**
     * 处置前关联附件id，多个以都好分隔
     */
    private String cmOrderBeforeAttachment;

    /**
     * 处置后关联附件id，多个以都好分隔
     */
    private String cmOrderAfterAttachment;

    /**
     * 维修结果上报人id
     */
    private Long cmOrderReportUserId;

    /**
     * 维修结果上报人名称
     */
    private String cmOrderReportUserName;

    /**
     * 维养概述
     */
    private String cmOrderSummary;


    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    @TableField(fill = FieldFill.INSERT)
    private String cmCreator;

    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    @TableField(fill = FieldFill.UPDATE)
    private String cmModifier;

    private String cmOrgflag;

    private Long cmRegflag;

    private String cmTenantid;

    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    @TableField(fill = FieldFill.INSERT)
    private Date cmAddtime;

    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    @TableField(fill = FieldFill.UPDATE)
    private Date cmUptime;

    private Long cmVersion;

    @TableLogic(value = "false", delval = "true")
    @TableField(fill = FieldFill.INSERT)
    private Boolean cmUsable;

    /**
     * 问题类别
     */
    @TableField(exist = false)
    private String cmProblemType;

    /**
     * 审核状态，0表待审核，1表示审核通过，2表示审核不通过
     */
    private Integer cmOrderApprovalStatus;

    /**
     * 审核状态，0表待审核，1表示审核通过，2表示审核不通过
     */
    @TableField(exist = false)
    private String cmOrderApprovalStatusDesc;

    @TableField(exist = false)
    private String isOrderDesc;

    private String cmOrderApprovalComments;

    /**
     * 问题描述
     */
    @TableField(exist = false)
    private String cmProblemDetail;

    /**
     * 计划分类 0表示巡检计划 1表示养护计划，2表示检查计划
     */
    @TableField(exist = false)
    private Integer cmPlanCategory;

}
